//index.js
const app = getApp()

Page({
  data: {
    avatarUrl: './user-unlogin.png',
    userInfo: {},
    hasUserInfo: false,
    canIUseGetUserProfile: false,
    canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl'),
    isLogin: false,
    isLoading: false  // 添加加载状态
  },

  onLoad: function() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true,
      })
    }
  },

  getUserProfile() {
    wx.getUserProfile({
      desc: '展示用户信息',
      success: (res) => {
        this.setData({
          avatarUrl: res.userInfo.avatarUrl,
          userInfo: res.userInfo,
          hasUserInfo: true,
        })
      }
    })
  },

  onGetUserInfo: function(e) {
    if (e.detail.userInfo) {
      this.setData({
        avatarUrl: e.detail.userInfo.avatarUrl,
        userInfo: e.detail.userInfo,
        hasUserInfo: true,
      })
    }
  },

  async handleLogin() {
    // 避免重复点击
    if (this.data.isLoading) return

    this.setData({ isLoading: true })
    wx.showLoading({ title: '登录中...' })

    try {
      // 获取用户信息
      const { result } = await wx.cloud.callFunction({
        name: 'login'
      })

      // 检查是否在白名单中
      const db = wx.cloud.database()
      const { data } = await db.collection('admin_whitelist')
        .where({
          phone: result.phoneNumber,
          status: true
        })
        .get()

      if (data.length > 0) {
        this.setData({ isLogin: true })
        wx.showToast({ title: '登录成功' })
        // 修改这里：跳转到周课表页面
        wx.navigateTo({
          url: '/pages/schedule/week/index'
        })
      } else {
        wx.showToast({
          title: '无权限登录',
          icon: 'error'
        })
      }
    } catch (error) {
      console.error(error)
      wx.showToast({
        title: '登录失败',
        icon: 'error'
      })
    } finally {
      this.setData({ isLoading: false })
      wx.hideLoading()
    }
  },

  // 添加退出登录方法
  handleLogout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          this.setData({
            isLogin: false
          })
          wx.showToast({
            title: '已退出登录'
          })
        }
      }
    })
  }
})
